// 1.引入基础模块
import axios from "axios"

import qs from 'qs'
// 2.通过node提供的环境常量动态管理服务端请求域名地址
// 动态process.env.NODE_ENV  development  production
let baseURL = ""
if (process.env.NODE_ENV == "development") {
    baseURL = "http://localhost:3000" //本地服务（测试服务器==>本地 测试服务器==>远程）
    // baseURL = "https://api.aslegou.top" //本地服务（测试服务器==>本地 测试服务器==>远程）
} else {
    baseURL = "https://api.aslegou.top" //生产服务器
}


// 3.创建实例
const http = axios.create({
    baseURL
})


// 4.设置请求拦截
http.interceptors.request.use((config) => {
    // 再此可以处理请求数据 header头 token
    return config
}, () => {})


// 5.设置响应拦截
http.interceptors.response.use((res) => {
    return res
}, () => {})




/**
 * 请求标准风格：
 *  restful风格，一种开发接口书写规范（查看：get 提交：post 删除：delete 修改put）
 *  查看：GET    http://www.gookang.com/tasks
 *  提交：POST   http://www.gookang.com/tasks
 *  删除：delete http://www.gookang.com/tasks
 *  修改：put    http://www.gookang.com/tasks
 */


// -------------------------基于项目方式封装：get post-----------------------------------------  
/**
 * 6.功能：基于get方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const getData = (url, params = {}) => {
    return http.get(url, {
        params
    })
}


/**
 * 7.功能：基于post方法查询数据
 * 参数：{
 *      url:"请求数据路径",
 *      params:请求参数
 * }
 * 返回结果：
 * */
export const postData = (url, params = {}) => {
    // 表单提交数据类型：字段类型数据 文件数据（img file video ）


    // 1.有文件上传(二进制文件流)
    // new FormData()
    // 2.无文件上传
    let data=qs.stringify(params)


    return http.post(url, data)
}